/**
 *  统一扫码， 支持登录、 码牌绑定、 打印机、 等
 *
 * @author terrfly
 * @site https://www.jeepay.vip
 * @date 2022/11/22 10:38
 */

import { $parseQrCodeUrl } from '@/http/apiManager.js'

const model = {
	
	// 扫码结果类型
	QR_TYPE_LOGIN: 'QR_TYPE_LOGIN',  // 登录
	QR_TYPE_QRC: 'QR_TYPE_QRC',  // 码牌
	QR_TYPE_PRINTER: 'QR_TYPE_PRINTER',  // 打印机
	QR_TYPE_OTHER: 'QR_TYPE_OTHER',  // 其他
	
	
	returnFunc: (type, bizValue, originQrVal) => {
		return { type: type, bizValue: bizValue, originQrVal: originQrVal}
	},
	
	// 解析 码牌
	parseQrc: (originQrVal) => {
		return $parseQrCodeUrl(originQrVal).then( ({bizData}) => {
			return model.returnFunc(model.QR_TYPE_QRC, bizData, originQrVal)
		})
	},
	
	
	// 返回  类型 和 扫码的值
	// 参数： 是否解析qrc , 默认不解析
	scan: (isParseQRC = false) => {
		
		return uni.scanCode().then(({ result }) => {
			
			// 登录类型 
			if(result.startsWith("JEEPAY_LOGIN_QR_")){
				return model.returnFunc(model.QR_TYPE_LOGIN, result.substring(16), result)
			}
			
			
			if(isParseQRC){
				return model.parseQrc(result).then( (res) => {
					return res;
				}).catch(() => {
					return model.returnFunc(model.QR_TYPE_OTHER, result, result)
				})
			}else{
				
				return model.returnFunc(model.QR_TYPE_OTHER, result, result)
				
			}
		  
		})
	}
	
}

export default model

